#pragma once
#include "..\DXAMLCommon.h"
#include "Base.h"
#include "XmlReaderInput.h"
#include "DeclEntity.h"



class InputSource :
	public Base
{
protected: 
	InputSource(const InputSource &);
public: 
	InputSource(struct IMalloc * pMalloc, XmlReaderInput * pInput);
	virtual ~InputSource();
	virtual DeclEntity * GetEntity();
	virtual void SetEntity(DeclEntity * pEntity);
	struct StringPtr * GetBaseUri();
	virtual void GetEncoding(struct StringPtr * * ppstrEncodingName, XUINT32 * pnEncodingCodePage);
	virtual bool IsEncodingSpecified();
	virtual bool IsEncodingHint();
	virtual HRESULT Read(void *, unsigned long, unsigned long *);
	virtual HRESULT Seek(union _LARGE_INTEGER dlibMove, unsigned long dwOrigin, union _ULARGE_INTEGER * plibNewPosition);
protected: 
	void operator=(const InputSource &);
	DeclEntity * _pEntity;
	XmlReaderInput * _pInput;
};